package syllabus.dao;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import syllabus.model.Criteria;
import syllabus.model.PFile;

public interface PFileMapper {
    /**
     * 根据条件查询记录总数
     */
    int countByExample(Criteria example);

    /**
     * 根据条件删除记录
     */
    int deleteByExample(Criteria example);

    /**
     * 根据主键删除记录
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 保存记录,不管记录里面的属性是否为空
     */
    int insert(PFile record);

    /**
     * 保存属性不为空的记录
     */
    int insertSelective(PFile record);

    /**
     * 根据条件查询记录集
     */
    List<PFile> selectByExample(Criteria example);

    /**
     * 根据主键查询记录
     */
    PFile selectByPrimaryKey(Integer id);

    /**
     * 根据条件更新属性不为空的记录
     */
    int updateByExampleSelective(@Param("record") PFile record, @Param("example") Criteria example);

    /**
     * 根据条件更新记录
     */
    int updateByExample(@Param("record") PFile record, @Param("example") Criteria example);

    /**
     * 根据主键更新属性不为空的记录
     */
    int updateByPrimaryKeySelective(PFile record);

    /**
     * 根据主键更新记录
     */
    int updateByPrimaryKey(PFile record);
    
    /**
     * 返回包含大纲名称的附件列表
     * @param c
     * @return
     */
    List<PFile> getAttachAndSyllabusName(Criteria c);
    
    /**
     * 包含大纲名称的附件列表数量
     * @param example
     * @return
     */
    int countBySyllabus(Criteria example);
}